package com.paic.mhis.hcpms.audit.biz.service;

import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.paic.mhis.core.auth.biz.service.UserDetails;
import com.paic.pafa.app.biz.service.BusinessServiceException;
import com.paic.pafa.exceptions.BusinessException;

/**
 * 
 * @author EX-CAOTIANHUA001
 * 
 */
public interface AuditProblemsService {

	public Map<String, Object> queryAuditProblemBeanByParameterBean(int page,
			int pageSize, Map<String, Object> params, Map<String, Object> map)
			throws BusinessServiceException;

	/*
	 * public long
	 * queryAuditProblemBeanCountByParameterBean(AuditProblemParameterRequestDTO
	 * requestBean);
	 */
	/**
	 * save <br/>
	 * auditProblemsDao.insertAuditProblems<br/>
	 * auditProblemsDao.updateAuditProblems
	 * 
	 * @param json
	 * @return
	 */
	Map<String, Object> saveAuditProblems(JSONObject json, UserDetails userInfo)
			throws BusinessServiceException;

	/**
	 * auditProblemsDao.queryAuditProblemsList
	 * 
	 * @param json
	 * @return
	 */
	Map<String, Object> queryAuditProblemsList(JSONObject json,
			Map<String, Object> resultMap) throws BusinessServiceException;

	/**
	 * 事件登记列表查询
	 * @param json
	 * @return
	 * @throws BusinessServiceException
	 */
	Map<String, Object> queryProblemList4Reg(int page, int pageSize,
			Map<String, Object> params) throws BusinessServiceException;

	/**
	 * 可以根据problemCode,或是auditProblemId 去查询可以任意选择其中之一
	 * 
	 * @param auditProblemId
	 * @param problemCode
	 * @return
	 */
	Map<String, Object> queryAuditProblemsDetail(String auditProblemId,
			String problemCode) throws BusinessServiceException;

	/**
	 * save <br/>
	 * auditTargetDao.insertAuditTarget <br/>
	 * auditTargetDao.updateAuditTarget save
	 * 
	 * @param json
	 * @return
	 */
	Map<String, Object> saveAuditTarget(JSONObject json)
			throws BusinessServiceException;

	/**
	 * AuditProblemsDao.queryAuditTargetList
	 * 
	 * @param json
	 * @return
	 */
	Map<String, Object> queryAuditTargetList(JSONObject json)
			throws BusinessServiceException;

	/**
	 * 查询编号(事件号WT+YYYYMM+4位顺序码，案件号JH+YYYYMM+4位顺序码)
	 * 
	 * @param bizType
	 * @return
	 */
	String querySeqTaskNoByBizType(String bizType);

	/**
	 * 
	 * @param json
	 * @return
	 * @throws BusinessServiceException
	 */
	Map<String, Object> queryCaseAuditList(int pageSize, int page,
			Map<String, Object> params) throws BusinessServiceException;

	/**
	 * 撤销功能
	 * @param problemId
	 * @param problemState
	 * @return
	 * @throws BusinessException 
	 */
	public String auditProblemsCancel(String problemCode, String problemStatus,
			UserDetails user) throws BusinessException, BusinessException;

	/**
	 * 
	 * @param json
	 * @param userInfo
	 * @return
	 * @throws BusinessServiceException
	 */
	Map<String, Object> batchEventsInitWf(JSONObject json, UserDetails userInfo)
			throws BusinessServiceException;
}
